The purpose of echo cancelling is to compensate a signal for echoes caused by various sources including feedback from a speaker in close proximity to a microphone. In general, prior art echo cancellers use a reference signal to determine the echoes and accordingly compensate the signal by removing (subtracting) an estimate of the echoes from the signal. For example, it is known in the prior art to minimize echo by implementing an acoustic echo canceller (AEC) algorithm in the communication end-point (e.g. an IP phone).
Traditionally echo cancelling resources are provided within the communication end-point. For example, ITU-T Recommendation G.167, “Acoustic Echo Controllers stipulates that an echo canceller be provided in the end-point (e.g. phone) to separate the signals of near-end talkers from the signal generated by the loudspeaker, in order to cancel the acoustic echo.
Prior art AEC algorithms are well known (see for example “Adaptive Filter Theory”, 3rd edition, Simon Haykin, Prentice Hall, 1996. ISBN 0-13-322-760-X).
Providing every end-point in a communication system with speakerphone capability that requires expensive echo cancelling resources inflates the cost of the end-point. Moreover, much of the time the phone will not be operated in speakerphone mode, with the result that the expensive echo cancelling resources remain unused.
U.S. Pat. No. 7,085,374 sets forth an echo canceller that is distributed over several processing elements, such as servers, or PBX's, thereby eliminating the prior art requirement that the AEC algorithm reside in the end-point. Since echo cancelling is a time synchronous operation (that is, the signal transmitted out of the loudspeaker needs to be time synchronized with the echo signal received by the microphone for optimal performance), and since packet networks tend to be asynchronous in nature, U.S. Pat. No. 7,085,374 sets forth a system that provides a time synchronized copy of the signal playing out of the loudspeaker (Rout) and the signal received by the microphone (Sin). This ensures the synchronous relationship in time that is a pre-requisite for adaptive filtering.
However, the mechanism set forth in U.S. Pat. No. 7,085,374 is susceptible to errors resulting from packet or data loss in the send direction (from the end-point to the server). To address this, U.S. Pat. No. 7,085,374 teaches either “freezing” operation of the echo canceller or sending redundant data.
With the advent of cloud based processing and FaaS (Function-as-a-Service), it is possible to move much of the communications processing from the end-point to a cloud server, such as Amazon Web Services (AWS). By moving most of the processing to the cloud, the high processing capabilities of cloud services can be leveraged to provide high quality algorithms that can be shared by multiple end-points. However, to effectively implement the AEC algorithm on the cloud, the problem of packet or data loss in the send direction must be addressed.